#include<iostream>
#include<assert.h>
#include<unistd.h>
#include<string.h>
#include<unistd.h>
using namespace std;
class String
{
  public:
    String(const char* str = "")
    {
      // 构造string类对象时，如果传递NULL指针，认为程序非法，此处断言下
      if(NULL == str)
       {
       assert(false);
       return;
       }
       _str = new char[strlen(str) + 1];
       strcpy(_str, str);
       }
   ~String()
     {
       if(_str)
       {
       delete[] _str;
       _str = NULL;
       }
      }
   private:
       char* _str;
    };
      // 测试
       void TestString()
       {
       String s1("hello bit!!!");
       String s2(s1);
       }
int main()
{
  TestString();
  return 0;
}
